The Advanced Configuration and Power Interface (ACPI) is an open industry specification that describes industry-standard interfaces for configuration and power management on processing systems such as laptop, desktop, and server computers. Revision 3.0 of the ACPI Specification, dated Sep. 2, 2004, may be obtained from www.acpi.info/spec.htm. The ACPI specification describes various sleep states and global power states. The present invention, however, is not limited to ACPI-compliant systems, but may be used to advantage in any suitable processing system.
For purposes of this disclosure, a processing system can be in one of three power states: active, sleeping, or off. The sleeping state may also be referred to as a state of hibernation, or as sleep mode.
In the off state, the system is powered down, and the system does not contain system context for restoring processes from an earlier active state. To transition from the off state to the active state, the boot firmware must initialize the hardware and boot an OS.
In the active state, the system dispatches and executes threads. The system typically responds to external events substantially in real time—subject to delays attributable to factors such as the workload and the performance limits of the processing system. Nevertheless, various performance and power characteristics of the system may be dynamically adjusted within the active state. For instance, the power state of individual devices within the system may be changed dynamically when the processing system is in the active state. The active state may also be referred to as active mode.
When in the sleeping state, the processing system does not execute user mode threads, and the system consumes less power than in the active state. The system may appear to be off, in that various peripheral devices or indicators (e.g., the display, certain light emitting diodes (LEDs), etc.) may be powered down. In some circumstances, the processing system may consume no power or substantially no power in the sleeping state. However, while in the sleeping state, the processing system preserves data pertaining to the processes that were executing in the active state (i.e., system context). The processing system can typically transition to the active state from the sleeping state more quickly than from the off state. For instance, in some implementations, a processing system may transition from the sleeping state to the active state without rebooting the operating system (OS).
To resume is to transition from the sleeping state to the active state.
Conventional processing systems may take over 60 seconds to resume. For example, a processing system with 3.4 gigabytes (GB) of random access memory (RAM) may take approximately 150 seconds to transition from non-powered sleep mode to active mode. Most of that time may be devoted to restoring the system context to RAM from a hard disk drive. As the amount of memory in the average processing system increases, the amount of time needed to resume the average processing system may also increase. If a person desires to use a processing system, waiting for that processing system to resume is typically neither fun nor productive for that person. As recognized by the present invention, it would be advantageous to reduce the amount of time needed to resume a processing system.